// #include <stdio.h>
// #include "test.h"

// int g_val = 2024;

// #define MAX 1000

// int main()
// {
//     int a = MAX;//这是一个注释
//     printf("%d\n", MAX);

//     printf("hehe\n");
//     printf("%d\n", g_val);
//     return 0;
// }


// int main()
// {
//     printf("%s\n", __FILE__);
// 	printf("%s\n", __DATE__);
// 	printf("%s\n", __TIME__);
//     printf("%d\n", __STDC__);//gcc是支持ANSI C的

//     return 0;
// }


// #define M 100+2
// #define STR "hehe"

// int main()
// {
//     int a = M;
//     printf("%s\n", STR);
//     return 0;
// }

// #define forever for(;;)

// int main()
// {
//     //for循环的判断部分什么都不写的时候，表示恒成立
//     // for(  ;   ;  )
//     //  ;
//     forever;
//     return 0;
// }

#define CASE break;case

// int main()
// {
//     int n = 0;
//     switch(n)
//     {
//         case 1:
//         //
//         CASE 2:
//         //
//         CASE 3:
//         //
//         CASE 4:
//     }
//     return 0;
// }

// #define DEBUG_PRINT printf("file:%s\tline:%d\t \
//                         date:%s\ttime:%s\n" ,\
//                         __FILE__,__LINE__ ,\
//                         __DATE__,__TIME__ ) 

// int main()
// {
//     DEBUG_PRINT;
//     return 0;
// }


// #define MAX 1000;
// //#define MAX 1000;


// int main()
// {
//     //int a = MAX;
//     printf("%d\n", MAX);
//     return 0;
// }


// #define SQUARE(X) (X)*(X)
// //宏的参数不运算，直接替换到宏的体内
// //1. 宏的参数中如果有操作符，和宏的内容中的操作符
// //因为运算符有优先级的问题，可能导致运算顺序不达预期
// //所以容易产生问题
// //2. 宏在书写的时候，给参数都带上括号，不要吝啬括号
// //
// int main()
// {
//     int a = 5;
//     printf("%d\n", SQUARE(a+1));
//     //printf("%d\n", (a+1)*(a+1));
//     //printf("%d\n", a+1*a+1);
//     //printf("%d\n", a*a);
//     return 0;
// }

// #define DOUBLE(X) ((X)+(X))

// #define DOUBLE(X) (2*(X))


// int main()
// {
//     //写一个宏，求参数的2倍
//     int a = 5;
//     int r = 3*DOUBLE(a);
//     //int r = 3*((a)+(a))

//     printf("%d\n", r);

//     return 0;
// }

// int main()
// {
//     int a = 5;
//     int b = a+1;//b=6 a=5
//     int b = ++a;//b=6 a=6 //副作用就是a也变了

//     return 0;
// }

//写一个宏，求2个整数的较大值
// #define MAX(x,y) ((x)>(y)?(x):(y))

// int main()
// {
//     int a = 0;
//     int b = 0;
//     scanf("%d %d", &a, &b);// 3 5
//     int m = MAX(a++, b++);
//     //int m = ((a++)>(b++)?(a++):(b++));

//     printf("m = %d\n", m);
//     printf("a = %d\n", a);
//     printf("b = %d\n", b);

//     return 0;
// }


// #define M 10

// //宏
// #define MAX(X,Y) ((X)>(Y)?(X):(Y))
// //函数
// int Max(int x,int y)
// {
//     return x>y?x:y;
// }

// int main()
// {
//     int m = MAX(M, 3+5);
//     printf("m = %d\n", m);
//     int n = Max(M, 3+5);
//     printf("n = %d\n", M);

//     // int m = ((10)>(3+5)?(10):(3+5));
//     return 0;
// }


// #define PRINT(val, format)  printf("the value of "#val" is " format"\n", val)
// //
// int main()
// {
// 	int a = 10;
// 	PRINT(a, "%d");

// 	int b = 20;
// 	PRINT(b, "%d");

// 	float f = 3.5f;
// 	PRINT(f, "%f");

// 	return 0;
// }


//使用宏，定义的一个通用的函数模具
// #define GENERIC_MAX(type) \
// type type##_max(type x, type y)\
// {\
//     return (x>y?x:y);\
// }

// GENERIC_MAX(int)   
// GENERIC_MAX(float)
// GENERIC_MAX(double)

// int main()
// {
//     int m = int_max(3, 5);
//     printf("%d\n", m);

//     return 0;
// }


// int main()
// {
//     int arr[SZ];
//     int i = 0;
//     for(i=0; i<SZ; i++)
//     {
//         arr[i] = i;
//     }
//     for(i=0; i<SZ; i++)
//     {
//         printf("%d ", arr[i]);
//     }
    
//     return 0;
// }

//#include <stdio.h>

//#define __DEBUG__

// int main()
// {
//         int i = 0;
//         int arr[10] = {0};
//         for(i=0; i<10; i++)
//         {
//                 arr[i] = i;
//                 #ifdef __DEBUG__
//                 printf("%d\n", arr[i]);//为了观察数组是否赋值成功。                
//                 #endif //__DEBUG__
//         }
//         return 0;
// }



// int main()
// {
//     #if 1==2
//         printf("hehe\n");
//     #endif
//     return 0;
// }

// #define M 3
// int main()
// {
//     int a = 3;
//     #if M==a//err
//         printf("hehe\n");
//     #endif
//     return 0;
// }

// #define M 2
// int main()
// {
//     #if M==1
//         printf("hehe\n");
//     #elif M==2
//         printf("haha\n");
//     #elif M == 3
//         printf("heihei\n");
//     #else
//         printf("~~~~\n");
//     #endif
//     return 0;
// }


// #define MAX 0
// int main()
// {
//     #if defined(MAX)
//         printf("hehe\n");
//     #endif

//     #ifdef MAX
//         printf("haha\n");
//     #endif

//     return 0;
// }

//#define MAX 0
// int main()
// {
//     #if !defined(MAX)
//         printf("hehe\n");
//     #endif

//     #ifndef MAX
//         printf("haha\n");
//     #endif

//     return 0;
// }


#include "test.h"
#include "test.h"
#include "test.h"
#include "test.h"
#include "test.h"


int main()
{
    return 0;
}